#include <iostream>
#include <vector>
#include <queue>
using namespace std;

int main()
{
	int n, limit; cin >> n >> limit;
	vector<int> arr(n); for (auto& e : arr) cin >> e;
	int ans = 0, l = 0, r = 0;
	deque<int> q_min, q_max;
    for (int r = 0; r < n; ++r)
    {
        int cur = arr[r];

        while (!q_max.empty() && arr[q_max.back()] < cur) q_max.pop_back();
        q_max.push_back(r);

        while (!q_min.empty() && arr[q_min.back()] > cur) q_min.pop_back();
        q_min.push_back(r);

        while (arr[q_max.front()] - arr[q_min.front()] > limit)
        {
            ++l;
            if (!q_max.empty() && q_max.front() < l) q_max.pop_front();
            if (!q_min.empty() && q_min.front() < l) q_min.pop_front();
        }

        ans = max(ans, r - l + 1);
    }

    cout << ans << endl;
	return 0;
}